﻿using System;

namespace _014_泛型方法
{
    class Program
    {
        //泛型方法             //尖括号里面可以不只有一个泛型,还可以增加
        public static string GetSum<T>(T a,T b)
        {
            return a + "" + b;
        }
        //名字一样，参数不同时，我们称为重载
        public static string GetSum<T,T1>(T a,T1 b)
        {
            return a + "" + b;
        }
        public static string GetSum11<T, T1, T2, T3>(T a, T b)
        {
            return a + "您好" + b;
        }
        static void Main(string[] args)
        {
                                //函数默认把类型设为传进来的参的类型
            Console.WriteLine(GetSum<int>(5,6));
                                //两个参数必须一样，因为用的都是泛型T
            Console.WriteLine(GetSum<string>("www.", "taike.com"));//如果重载方法参数类型一样的话，将不能隐式转换
                                //什么类型都能传
            Console.WriteLine(GetSum<double>(12.5, 6.20));
                                //泛型方法里的参数有两个不同的泛型，两个参数类型就可以不一样
            Console.WriteLine(GetSum<string,int>("www.", 123456));
            //如果存在多个泛型类型，则需要手动设置
            Console.WriteLine(GetSum11<string,string,int,int>("121", "111"));

            Console.ReadKey();

            

        }
    }
}
